/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
         http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once

#include "particles.h"


S_粒子系统配置* f_create粒子系统(uint32 pnum, S_设备环境 ctx, E_粒子绘制类型 type = E_粒子绘制类型::E_粒子物体_点);

void f_set粒子数量(S_粒子系统配置* psys, uint32 num);

void f_设置粒子发射器(S_粒子系统配置* psys);

void f_set粒子寿命(S_粒子系统配置* psys);

void f_step粒子系统(S_粒子系统配置* psys);

void f_set物理类型(S_粒子系统配置* psys, S_结构对象指针 物理引擎, E_物理体类型 type);

void f_set绘制类型(S_粒子系统配置* psys, E_粒子绘制类型 type);

void f_draw粒子(S_粒子系统配置* psys, S_渲染参数& 渲染参数);



void f_set粒子位置(S_粒子系统配置* psys, const vec3* l, uint32 num);
void f_set粒子速度(S_粒子系统配置* psys, const vec3* v, uint32 num);
void f_set粒子旋转(S_粒子系统配置* psys, const vec3* r, uint32 num);
void f_set粒子大小(S_粒子系统配置* psys, const vec3* s, uint32 num);

void f_particle_set粒子单方向力(S_粒子系统配置* psys, const vec3& s);





void    f_particle_copy坐标(S_粒子系统配置* psys, vec3* c);
void    f_particle_copy速度(S_粒子系统配置* psys, vec3* v);



void	f_particle_设置物理属性(S_粒子系统配置* psys, S_物理体* body);



bool   f_particle_map物理引擎(S_粒子系统配置* psys);





